Process Mining

Process mining is the art of discovering, monitoring, and improving processes by extracting knowledge from event logs available in information systems. Process mining results in knowledge about real processes followed in an organization that might be helpfull when resolving process bottlenecks or when checking if processes are compliant.

bupaR is an R package that allows to perform process mining activities in R. At the end of this page you can find more details about bupaR.

An example of process mining is shown below.
We start loading the necesssary libraries into R and by reading the log file (which is in an excel format for this example):

library(tidyverse)
library(bupaR)
library(openxlsx)
library(processanimateR)
library(heuristicsmineR)
library(petrinetR)
library(lubridate)
library(tictoc)
library(knitr)
library(pheatmap)
library(maditr)
library(viridis)
library(forcats)

# start timer
tic("Time to complete")

# setup section:
filename<-"Production_Data.xlsx"

# Read in a fresh file?
read_file<-TRUE

# filter setup


# Read file if required
if (read_file) {
eventlog<-read.xlsx(filename,sheet=1,detectDates=TRUE,colNames=TRUE)

eventlog$Start<-as.POSIXct(eventlog$Start, tz = "", format="%Y/%m/%d %H:%M:%OS" ,optional = FALSE)
eventlog$Complete<-as.POSIXct(eventlog$Complete, tz = "", format="%Y/%m/%d %H:%M:%OS" ,optional = FALSE)
}

# duplicate the records, one for start, one for completion, as bupaR needs that format
# copy the whole log
eventlog2<-eventlog

# the original records get status "start" and the corresponding timestamp
eventlog$Status<-"start"
eventlog$TimeStamp<-eventlog$Start
# the copied records get status "complete" and the corresponding timestamp
eventlog2$Status<-"complete"
eventlog2$TimeStamp<-eventlog2$Complete
# both get their row number as instance IDs
eventlog<-eventlog %>%  mutate(activity_instance = 1:nrow(.))
eventlog2<-eventlog2 %>%  mutate(activity_instance = 1:nrow(.))
# both data frames are now joined 
eventlog<-rbind(eventlog,eventlog2)


eventlog$dow<-weekdays(as.Date(eventlog$Complete))
eventlog<-eventlog[!is.na(eventlog$CaseID),]

eventlog$dow <- ordered(eventlog$dow, levels=c("maandag", "dinsdag", "woensdag", "donderdag",
 "vrijdag", "zaterdag", "zondag"))


eventlog <- eventlog %>%
  mutate(dow = fct_recode(dow,
    "Monday" = "maandag",
    "Tuesday" = "dinsdag",
    "Wednesday" = "woensdag",
    "Thursday" = "donderdag",
    "Friday" = "vrijdag",
    "Saturday" = "zaterdag",
    "Sunday" = "zondag"
  ))

The log file read in looks as follows (first 10 lines shown):

kable(eventlog[1:10,])
CaseID Activity Resource Start Complete Span Work.Order.Qty Part.Desc. Worker.ID Report.Type Qty.Completed Qty.Rejected Qty.for.MRB Rework Status TimeStamp activity_instance dow
Case 1 Turning & Milling - Machine 4 Machine 4 - Turning & Milling 2012-01-29 23:24:00 2012-01-30 05:43:00 006:19 10 Cable Head ID4932 S 1 0 0 NA start 2012-01-29 23:24:00 1 Monday
Case 1 Turning & Milling - Machine 4 Machine 4 - Turning & Milling 2012-01-30 05:44:00 2012-01-30 06:42:00 000:58 10 Cable Head ID4932 D 1 0 0 NA start 2012-01-30 05:44:00 2 Monday
Case 1 Turning & Milling - Machine 4 Machine 4 - Turning & Milling 2012-01-30 06:59:00 2012-01-30 07:21:00 000:22 10 Cable Head ID4167 S 0 0 0 NA start 2012-01-30 06:59:00 3 Monday
Case 1 Turning & Milling - Machine 4 Machine 4 - Turning & Milling 2012-01-30 07:21:00 2012-01-30 10:58:00 003:37 10 Cable Head ID4167 D 8 0 0 NA start 2012-01-30 07:21:00 4 Monday
Case 1 Turning & Milling Q.C. Quality Check 1 2012-01-31 13:20:00 2012-01-31 14:50:00 001:30 10 Cable Head ID4163 D 9 1 0 NA start 2012-01-31 13:20:00 5 Tuesday
Case 1 Laser Marking - Machine 7 Machine 7- Laser Marking 2012-02-01 08:18:00 2012-02-01 08:27:00 000:09 10 Cable Head ID0998 D 9 0 0 NA start 2012-02-01 08:18:00 6 Wednesday
Case 1 Lapping - Machine 1 Machine 1 - Lapping 2012-02-14 00:00:00 2012-02-14 01:15:00 000:00 10 Cable Head ID4882 D 0 0 0 NA start 2012-02-14 00:00:00 7 Tuesday
Case 1 Lapping - Machine 1 Machine 1 - Lapping 2012-02-14 00:00:00 2012-02-14 01:15:00 000:00 10 Cable Head ID4882 D 0 0 0 NA start 2012-02-14 00:00:00 8 Tuesday
Case 1 Lapping - Machine 1 Machine 1 - Lapping 2012-02-14 09:05:00 2012-02-14 10:20:00 000:00 10 Cable Head ID4882 D 1 0 0 NA start 2012-02-14 09:05:00 9 Tuesday
Case 1 Lapping - Machine 1 Machine 1 - Lapping 2012-02-14 09:05:00 2012-02-14 09:38:00 000:33 10 Cable Head ID4882 D 8 0 0 NA start 2012-02-14 09:05:00 10 Tuesday
print(paste("Number of records read in from the log file: ",nrow(eventlog),sep=""))
## [1] "Number of records read in from the log file: 9086"

The log file is converted to an eventlog object:

# convert data frame into an eventlog object
# activity_instance is set equal to the row number

evLog<-eventlog %>%
  eventlog(
    case_id = "CaseID",
    activity_id = "Activity",
    lifecycle_id = "Status",
    activity_instance_id = "activity_instance",
    timestamp = "TimeStamp",
    resource_id = "Resource"
  )
evLog<-evLog[order(evLog$TimeStamp),]

For this example we select only records with a date in 2014 and we keep only complete cycles (from start to end):

# # filter on begin and end activities
# evLog <- evLog %>%
#   filter_endpoints(start_activities = c("Create REQ","Create REQ Line"), end_activities = c("Create PO","Create PO Line"))
# 
# print(paste("Number of records remaining after filtering: ",nrow(evLog),sep=""))

Some statistics about our event log extract:

  • mapping used from log file to event log:
# overview of the mapping used
mapp<-evLog %>% mapping()
kable(as.data.frame(mapp))
case_identifier activity_identifier activity_instance_identifier timestamp_identifier lifecycle_identifier resource_identifier
CaseID Activity activity_instance TimeStamp Status Resource
  • activities found in the event log:
# overview of the different activities
mapp<-evLog %>% activity_labels()
kable(as.data.frame(mapp))
mapp
Round Grinding - Machine 3
Turning & Milling Q.C.
Turning & Milling - Machine 4
Lapping - Machine 1
Turning - Machine 8
Milling - Machine 16
Turning & Milling - Machine 9
Turning & Milling - Machine 8
Round Grinding - Machine 2
Laser Marking - Machine 7
Flat Grinding - Machine 11
Round Grinding - Manual
Turning & Milling - Machine 5
Turning & Milling - Machine 10
Final Inspection Q.C.
Turning & Milling - Machine 6
Turn & Mill. & Screw Assem - Machine 9
Round Grinding - Q.C.
Packing
Grinding Rework - Machine 27
Turning Q.C.
Flat Grinding - Machine 26
Grinding Rework
Grinding Rework - Machine 2
Milling - Machine 10
Turning Rework - Machine 21
Round Grinding - Machine 12
Rework Milling - Machine 28
Stress Relief
Turning - Machine 9
Nitration Q.C.
Fix - Machine 19
Fix EDM
Wire Cut - Machine 13
Turning - Machine 5
Round Grinding - Machine 23
Deburring - Manual
Change Version - Machine 22
Wire Cut - Machine 18
Turn & Mill. & Screw Assem - Machine 10
Milling - Machine 14
Grinding Rework - Machine 12
Round Grinding - Machine 19
Round Q.C.
Final Inspection - Weighting
SETUP Turning & Milling - Machine 5
Milling Q.C.
Turning - Machine 21
Fix - Machine 3
Setup - Machine 4
Turning - Machine 4
Milling - Machine 8
Fix - Machine 15
Setup - Machine 8
Fix - Machine 15M
  • frequency of the activities as found in the event log:
# overview of the mapping used
mapp<-evLog %>% activities()
kable(as.data.frame(mapp))
Activity absolute_frequency relative_frequency
Final Inspection Q.C. 550 0.1210654
Turning & Milling Q.C. 522 0.1149020
Lapping - Machine 1 370 0.0814440
Packing 277 0.0609729
Round Grinding - Machine 3 273 0.0600924
Round Grinding - Machine 2 267 0.0587717
Turning & Milling - Machine 4 262 0.0576711
Turning & Milling - Machine 6 261 0.0574510
Turning & Milling - Machine 5 259 0.0570108
Laser Marking - Machine 7 252 0.0554700
Turning & Milling - Machine 8 180 0.0396214
Turning & Milling - Machine 9 158 0.0347788
Turning & Milling - Machine 10 149 0.0327977
Flat Grinding - Machine 11 113 0.0248734
Round Grinding - Manual 84 0.0184900
Turning - Machine 8 83 0.0182699
Round Grinding - Machine 12 82 0.0180497
Grinding Rework - Machine 27 69 0.0151882
Round Grinding - Q.C. 59 0.0129870
Turning Q.C. 55 0.0121065
Turning - Machine 9 33 0.0072639
Turn & Mill. & Screw Assem - Machine 10 28 0.0061633
Wire Cut - Machine 13 21 0.0046225
Milling - Machine 14 18 0.0039621
Grinding Rework 11 0.0024213
Grinding Rework - Machine 12 11 0.0024213
Milling - Machine 16 10 0.0022012
Deburring - Manual 9 0.0019811
Turning - Machine 4 8 0.0017610
Turn & Mill. & Screw Assem - Machine 9 7 0.0015408
Grinding Rework - Machine 2 6 0.0013207
Round Grinding - Machine 19 6 0.0013207
Wire Cut - Machine 18 6 0.0013207
Change Version - Machine 22 4 0.0008805
Fix EDM 4 0.0008805
Nitration Q.C. 4 0.0008805
Round Grinding - Machine 23 3 0.0006604
SETUP Turning & Milling - Machine 5 3 0.0006604
Stress Relief 3 0.0006604
Turning Rework - Machine 21 3 0.0006604
Fix - Machine 15 2 0.0004402
Fix - Machine 3 2 0.0004402
Rework Milling - Machine 28 2 0.0004402
Round Q.C. 2 0.0004402
Turning - Machine 5 2 0.0004402
Final Inspection - Weighting 1 0.0002201
Fix - Machine 15M 1 0.0002201
Fix - Machine 19 1 0.0002201
Flat Grinding - Machine 26 1 0.0002201
Milling - Machine 10 1 0.0002201
Milling - Machine 8 1 0.0002201
Milling Q.C. 1 0.0002201
Setup - Machine 4 1 0.0002201
Setup - Machine 8 1 0.0002201
Turning - Machine 21 1 0.0002201
  • Resource idle time
mapp<-evLog %>%
    idle_time("resource", units = "days")

kable(as.data.frame(mapp))
Resource idle_time
Packing 83.1250000
Machine 11 - Grinding 79.1368056
Machine 15 - Turning 79.0652778
Machine 7- Laser Marking 78.3229167
Machine 12 - Grinding 70.5229167
Machine 17 - Sinking 68.6034722
Machine 1 - Lapping 67.1201389
Machine 27 - Grinding 66.3611111
Wire Cut - Machine 13 56.7736111
Quality Check 1 55.9208333
Machine 8 - Turning & Milling 55.2013889
Machine 9 - Turning & Milling 52.2604167
Manual Deburring 49.1583333
Machine 21 - Turning 48.8333333
Machine 3 - Round Grinding 47.2979167
Machine 10 - Grinding 46.8048611
Machine 2 - Round Grinding 45.0798611
Oven 37.0791667
Machine 6 - Turning & Milling 36.0666667
Machine 18 - Wire Cutting 34.5833333
Machine 5 - Turning & Milling 34.4666667
Machine 4 - Turning & Milling 31.2805556
Machine 23 - Turning 28.6097222
Machine 16 - Milling 22.0326389
Machine 14 - Milling 6.8743056
Machine 22 - Milling 0.8291667
Machine 19 - Grinding 0.6250000
Quality Check 2 0.5638889
mapp %>% plot()

  • Processing time
mapp<-evLog %>%
 processing_time("activity",units="days")
 
kable(as.data.frame(mapp))
Activity min q1 mean median q3 max st_dev iqr total relative_frequency
Final Inspection Q.C. 0.0000000 0.0298611 0.0797260 0.0520833 0.1145833 0.4493056 0.0723478 0.0847222 43.8493056 0.1210654
Turning & Milling Q.C. 0.0006944 0.0215278 0.0636241 0.0506944 0.0711806 0.4423611 0.0669571 0.0496528 33.2118056 0.1149020
Lapping - Machine 1 0.0000000 0.0437500 0.0739865 0.0520833 0.0833333 0.9451389 0.0750842 0.0395833 27.3750000 0.0814440
Packing 0.0416667 0.0416667 0.0416667 0.0416667 0.0416667 0.0416667 0.0000000 0.0000000 11.5416667 0.0609729
Round Grinding - Machine 3 0.0006944 0.0576389 0.1597222 0.1215278 0.2465278 0.7013889 0.1300051 0.1888889 43.6041667 0.0600924
Round Grinding - Machine 2 0.0006944 0.0718750 0.1621307 0.1250000 0.2368056 0.6604167 0.1221382 0.1649306 43.2888889 0.0587717
Turning & Milling - Machine 4 0.0006944 0.0842014 0.2315893 0.2291667 0.3309028 0.9222222 0.1696472 0.2467014 60.6763889 0.0576711
Turning & Milling - Machine 6 0.0006944 0.0847222 0.2117523 0.1861111 0.2979167 0.9340278 0.1615891 0.2131944 55.2673611 0.0574510
Turning & Milling - Machine 5 0.0006944 0.0944444 0.2242439 0.2270833 0.3114583 0.9326389 0.1586352 0.2170139 58.0791667 0.0570108
Laser Marking - Machine 7 0.0006944 0.0173611 0.0401124 0.0364583 0.0520833 0.1736111 0.0304142 0.0347222 10.1083333 0.0554700
Turning & Milling - Machine 8 0.0027778 0.0619792 0.1546296 0.1232639 0.2098958 0.6090278 0.1195511 0.1479167 27.8333333 0.0396214
Turning & Milling - Machine 9 0.0006944 0.0708333 0.2008043 0.1732639 0.2963542 0.9930556 0.1491344 0.2255208 31.7270833 0.0347788
Turning & Milling - Machine 10 0.0006944 0.0958333 0.2347968 0.2256944 0.3215278 0.9583333 0.1636409 0.2256944 34.9847222 0.0327977
Flat Grinding - Machine 11 0.0000000 0.0291667 0.0649275 0.0520833 0.0694444 0.2895833 0.0617738 0.0402778 7.3368056 0.0248734
Round Grinding - Manual 0.0187500 0.0520833 0.1497933 0.1000000 0.2388889 0.4409722 0.1157931 0.1868056 12.5826389 0.0184900
Turning - Machine 8 0.0006944 0.0486111 0.1619311 0.1291667 0.2392361 0.5006944 0.1404436 0.1906250 13.4402778 0.0182699
Round Grinding - Machine 12 0.0076389 0.0458333 0.1198340 0.0694444 0.1656250 0.4458333 0.1033943 0.1197917 9.8263889 0.0180497
Grinding Rework - Machine 27 0.0062500 0.0458333 0.1090680 0.0840278 0.1409722 0.4243056 0.0897108 0.0951389 7.5256944 0.0151882
Round Grinding - Q.C. 0.0006944 0.0413194 0.1009181 0.0694444 0.1312500 0.3777778 0.0915472 0.0899306 5.9541667 0.0129870
Turning Q.C. 0.0006944 0.0319444 0.0611616 0.0506944 0.0774306 0.2798611 0.0546626 0.0454861 3.3638889 0.0121065
Turning - Machine 9 0.0006944 0.0604167 0.1799874 0.1250000 0.2763889 0.7368056 0.1537160 0.2159722 5.9395833 0.0072639
Turn & Mill. & Screw Assem - Machine 10 0.0201389 0.0935764 0.2444196 0.2718750 0.3765625 0.4625000 0.1490571 0.2829861 6.8437500 0.0061633
Wire Cut - Machine 13 0.0076389 0.0625000 0.2349868 0.2500000 0.3333333 0.5000000 0.1434840 0.2708333 4.9347222 0.0046225
Milling - Machine 14 0.0416667 0.0631944 0.1825617 0.1211806 0.2489583 0.4340278 0.1423209 0.1857639 3.2861111 0.0039621
Grinding Rework 0.0006944 0.0312500 0.0686237 0.0513889 0.1041667 0.1590278 0.0514309 0.0729167 0.7548611 0.0024213
Grinding Rework - Machine 12 0.0298611 0.0607639 0.0852273 0.0694444 0.0937500 0.1979167 0.0480705 0.0329861 0.9375000 0.0024213
Milling - Machine 16 0.1666667 0.2343750 0.3175694 0.3527778 0.3697917 0.4652778 0.1081324 0.1354167 3.1756944 0.0022012
Deburring - Manual 0.0006944 0.0520833 0.0902006 0.0520833 0.0861111 0.2826389 0.0825976 0.0340278 0.8118056 0.0019811
Turning - Machine 4 0.1270833 0.1616319 0.2702257 0.2493056 0.3788194 0.4590278 0.1250752 0.2171875 2.1618056 0.0017610
Turn & Mill. & Screw Assem - Machine 9 0.0256944 0.0888889 0.1317460 0.1361111 0.1871528 0.2083333 0.0686362 0.0982639 0.9222222 0.0015408
Grinding Rework - Machine 2 0.1250000 0.1826389 0.2394676 0.2329861 0.2817708 0.3819444 0.0916324 0.0991319 1.4368056 0.0013207
Round Grinding - Machine 19 0.0104167 0.0442708 0.0946759 0.0850694 0.1274306 0.2152778 0.0749700 0.0831597 0.5680556 0.0013207
Wire Cut - Machine 18 0.0833333 0.1197917 0.2083333 0.1875000 0.3020833 0.3541667 0.1141089 0.1822917 1.2500000 0.0013207
Change Version - Machine 22 0.2354167 0.3088542 0.3414931 0.3590278 0.3916667 0.4125000 0.0779520 0.0828125 1.3659722 0.0008805
Fix EDM 0.0416667 0.0416667 0.1147569 0.0628472 0.1359375 0.2916667 0.1196184 0.0942708 0.4590278 0.0008805
Nitration Q.C. 0.0006944 0.0006944 0.0182292 0.0013889 0.0189236 0.0694444 0.0341498 0.0182292 0.0729167 0.0008805
Round Grinding - Machine 23 0.0743056 0.0767361 0.1067130 0.0791667 0.1229167 0.1666667 0.0519783 0.0461806 0.3201389 0.0006604
SETUP Turning & Milling - Machine 5 0.0979167 0.1253472 0.1393519 0.1527778 0.1600694 0.1673611 0.0366173 0.0347222 0.4180556 0.0006604
Stress Relief 0.0000000 0.0416667 0.0833333 0.0833333 0.1250000 0.1666667 0.0833333 0.0833333 0.2500000 0.0006604
Turning Rework - Machine 21 0.0416667 0.0520833 0.1041667 0.0625000 0.1354167 0.2083333 0.0908104 0.0833333 0.3125000 0.0006604
Fix - Machine 15 0.0437500 0.0494792 0.0552083 0.0552083 0.0609375 0.0666667 0.0162045 0.0114583 0.1104167 0.0004402
Fix - Machine 3 0.0131944 0.0333333 0.0534722 0.0534722 0.0736111 0.0937500 0.0569614 0.0402778 0.1069444 0.0004402
Rework Milling - Machine 28 0.0625000 0.0677083 0.0729167 0.0729167 0.0781250 0.0833333 0.0147314 0.0104167 0.1458333 0.0004402
Round Q.C. 0.0416667 0.0442708 0.0468750 0.0468750 0.0494792 0.0520833 0.0073657 0.0052083 0.0937500 0.0004402
Turning - Machine 5 0.1361111 0.1442708 0.1524306 0.1524306 0.1605903 0.1687500 0.0230792 0.0163194 0.3048611 0.0004402
Final Inspection - Weighting 0.0520833 0.0520833 0.0520833 0.0520833 0.0520833 0.0520833 NA 0.0000000 0.0520833 0.0002201
Fix - Machine 15M 0.0666667 0.0666667 0.0666667 0.0666667 0.0666667 0.0666667 NA 0.0000000 0.0666667 0.0002201
Fix - Machine 19 0.2812500 0.2812500 0.2812500 0.2812500 0.2812500 0.2812500 NA 0.0000000 0.2812500 0.0002201
Flat Grinding - Machine 26 0.1875000 0.1875000 0.1875000 0.1875000 0.1875000 0.1875000 NA 0.0000000 0.1875000 0.0002201
Milling - Machine 10 0.0520833 0.0520833 0.0520833 0.0520833 0.0520833 0.0520833 NA 0.0000000 0.0520833 0.0002201
Milling - Machine 8 0.3326389 0.3326389 0.3326389 0.3326389 0.3326389 0.3326389 NA 0.0000000 0.3326389 0.0002201
Milling Q.C. 0.0520833 0.0520833 0.0520833 0.0520833 0.0520833 0.0520833 NA 0.0000000 0.0520833 0.0002201
Setup - Machine 4 0.0784722 0.0784722 0.0784722 0.0784722 0.0784722 0.0784722 NA 0.0000000 0.0784722 0.0002201
Setup - Machine 8 0.0527778 0.0527778 0.0527778 0.0527778 0.0527778 0.0527778 NA 0.0000000 0.0527778 0.0002201
Turning - Machine 21 0.1875000 0.1875000 0.1875000 0.1875000 0.1875000 0.1875000 NA 0.0000000 0.1875000 0.0002201
mappi<-mapp %>% plot()
png(file="processing_time.png",width=1500, height=2000)
mappi
dev.off()
## png 
##   2
include_graphics("processing_time.png")

  • Throughput time
mapp<-evLog %>%
 throughput_time("log")

kable(as.data.frame(mapp))
mapp
min 0.02083333
q1 5.44513889
median 13.90138889
mean 20.61144753
q3 28.90000000
max 87.41319444
st_dev 21.10654270
iqr 23.45486111
mapp %>% plot()

  • activity duration:

Note: In below table the durations are all 0 because the log file used does only contain timestamps for the completion of the activities. If both start and end of activities are logged the durations can be calculated. That information can also be used to calculate resource utilisation and resource idle times.

# overview of the mapping used
mapp<-evLog %>% processing_time("activity",units="mins")
kable(as.data.frame(mapp))
Activity min q1 mean median q3 max st_dev iqr total relative_frequency
Final Inspection Q.C. 0 43.00 114.80545 75.0 165.00 647 104.18079 122.00 63143 0.1210654
Turning & Milling Q.C. 1 31.00 91.61877 73.0 102.50 637 96.41821 71.50 47825 0.1149020
Lapping - Machine 1 0 63.00 106.54054 75.0 120.00 1361 108.12130 57.00 39420 0.0814440
Packing 60 60.00 60.00000 60.0 60.00 60 0.00000 0.00 16620 0.0609729
Round Grinding - Machine 3 1 83.00 230.00000 175.0 355.00 1010 187.20730 272.00 62790 0.0600924
Round Grinding - Machine 2 1 103.50 233.46816 180.0 341.00 951 175.87900 237.50 62336 0.0587717
Turning & Milling - Machine 4 1 121.25 333.48855 330.0 476.50 1328 244.29190 355.25 87374 0.0576711
Turning & Milling - Machine 6 1 122.00 304.92337 268.0 429.00 1345 232.68831 307.00 79585 0.0574510
Turning & Milling - Machine 5 1 136.00 322.91120 327.0 448.50 1343 228.43462 312.50 83634 0.0570108
Laser Marking - Machine 7 1 25.00 57.76190 52.5 75.00 250 43.79642 50.00 14556 0.0554700
Turning & Milling - Machine 8 4 89.25 222.66667 177.5 302.25 877 172.15353 213.00 40080 0.0396214
Turning & Milling - Machine 9 1 102.00 289.15823 249.5 426.75 1430 214.75350 324.75 45687 0.0347788
Turning & Milling - Machine 10 1 138.00 338.10738 325.0 463.00 1380 235.64289 325.00 50378 0.0327977
Flat Grinding - Machine 11 0 42.00 93.49558 75.0 100.00 417 88.95425 58.00 10565 0.0248734
Round Grinding - Manual 27 75.00 215.70238 144.0 344.00 635 166.74212 269.00 18119 0.0184900
Turning - Machine 8 1 70.00 233.18072 186.0 344.50 721 202.23876 274.50 19354 0.0182699
Round Grinding - Machine 12 11 66.00 172.56098 100.0 238.50 642 148.88782 172.50 14150 0.0180497
Grinding Rework - Machine 27 9 66.00 157.05797 121.0 203.00 611 129.18351 137.00 10837 0.0151882
Round Grinding - Q.C. 1 59.50 145.32203 100.0 189.00 544 131.82792 129.50 8574 0.0129870
Turning Q.C. 1 46.00 88.07273 73.0 111.50 403 78.71417 65.50 4844 0.0121065
Turning - Machine 9 1 87.00 259.18182 180.0 398.00 1061 221.35103 311.00 8553 0.0072639
Turn & Mill. & Screw Assem - Machine 10 29 134.75 351.96429 391.5 542.25 666 214.64225 407.50 9855 0.0061633
Wire Cut - Machine 13 11 90.00 338.38095 360.0 480.00 720 206.61691 390.00 7106 0.0046225
Milling - Machine 14 60 91.00 262.88889 174.5 358.50 625 204.94214 267.50 4732 0.0039621
Grinding Rework 1 45.00 98.81818 74.0 150.00 229 74.06054 105.00 1087 0.0024213
Grinding Rework - Machine 12 43 87.50 122.72727 100.0 135.00 285 69.22152 47.50 1350 0.0024213
Milling - Machine 16 240 337.50 457.30000 508.0 532.50 670 155.71059 195.00 4573 0.0022012
Deburring - Manual 1 75.00 129.88889 75.0 124.00 407 118.94058 49.00 1169 0.0019811
Turning - Machine 4 183 232.75 389.12500 359.0 545.50 661 180.10825 312.75 3113 0.0017610
Turn & Mill. & Screw Assem - Machine 9 37 128.00 189.71429 196.0 269.50 300 98.83608 141.50 1328 0.0015408
Grinding Rework - Machine 2 180 263.00 344.83333 335.5 405.75 550 131.95062 142.75 2069 0.0013207
Round Grinding - Machine 19 15 63.75 136.33333 122.5 183.50 310 107.95678 119.75 818 0.0013207
Wire Cut - Machine 18 120 172.50 300.00000 270.0 435.00 510 164.31677 262.50 1800 0.0013207
Change Version - Machine 22 339 444.75 491.75000 517.0 564.00 594 112.25084 119.25 1967 0.0008805
Fix EDM 60 60.00 165.25000 90.5 195.75 420 172.25054 135.75 661 0.0008805
Nitration Q.C. 1 1.00 26.25000 2.0 27.25 100 49.17571 26.25 105 0.0008805
Round Grinding - Machine 23 107 110.50 153.66667 114.0 177.00 240 74.84874 66.50 461 0.0006604
SETUP Turning & Milling - Machine 5 141 180.50 200.66667 220.0 230.50 241 52.72887 50.00 602 0.0006604
Stress Relief 0 60.00 120.00000 120.0 180.00 240 120.00000 120.00 360 0.0006604
Turning Rework - Machine 21 60 75.00 150.00000 90.0 195.00 300 130.76697 120.00 450 0.0006604
Fix - Machine 15 63 71.25 79.50000 79.5 87.75 96 23.33452 16.50 159 0.0004402
Fix - Machine 3 19 48.00 77.00000 77.0 106.00 135 82.02439 58.00 154 0.0004402
Rework Milling - Machine 28 90 97.50 105.00000 105.0 112.50 120 21.21320 15.00 210 0.0004402
Round Q.C. 60 63.75 67.50000 67.5 71.25 75 10.60660 7.50 135 0.0004402
Turning - Machine 5 196 207.75 219.50000 219.5 231.25 243 33.23402 23.50 439 0.0004402
Final Inspection - Weighting 75 75.00 75.00000 75.0 75.00 75 NA 0.00 75 0.0002201
Fix - Machine 15M 96 96.00 96.00000 96.0 96.00 96 NA 0.00 96 0.0002201
Fix - Machine 19 405 405.00 405.00000 405.0 405.00 405 NA 0.00 405 0.0002201
Flat Grinding - Machine 26 270 270.00 270.00000 270.0 270.00 270 NA 0.00 270 0.0002201
Milling - Machine 10 75 75.00 75.00000 75.0 75.00 75 NA 0.00 75 0.0002201
Milling - Machine 8 479 479.00 479.00000 479.0 479.00 479 NA 0.00 479 0.0002201
Milling Q.C. 75 75.00 75.00000 75.0 75.00 75 NA 0.00 75 0.0002201
Setup - Machine 4 113 113.00 113.00000 113.0 113.00 113 NA 0.00 113 0.0002201
Setup - Machine 8 76 76.00 76.00000 76.0 76.00 76 NA 0.00 76 0.0002201
Turning - Machine 21 270 270.00 270.00000 270.0 270.00 270 NA 0.00 270 0.0002201
  • Resource activity

The below table is indicating how many of the activities are carried out by each resource.

mapp<-evLog %>% resource_frequency("resource") 
kable(as.data.frame(mapp))
Resource absolute relative
Quality Check 1 1193 0.2626018
Machine 1 - Lapping 369 0.0812239
Packing 277 0.0609729
Machine 3 - Round Grinding 275 0.0605327
Machine 2 - Round Grinding 273 0.0600924
Machine 4 - Turning & Milling 271 0.0596522
Machine 5 - Turning & Milling 264 0.0581114
Machine 6 - Turning & Milling 261 0.0574510
Machine 7- Laser Marking 252 0.0554700
Machine 8 - Turning & Milling 219 0.0482060
Machine 9 - Turning & Milling 198 0.0435835
Machine 10 - Grinding 178 0.0391812
Machine 27 - Grinding 153 0.0336782
Machine 11 - Grinding 124 0.0272947
Machine 12 - Grinding 93 0.0204711
Machine 15 - Turning 49 0.0107858
Wire Cut - Machine 13 21 0.0046225
Machine 14 - Milling 18 0.0039621
Machine 16 - Milling 10 0.0022012
Manual Deburring 9 0.0019811
Machine 18 - Wire Cutting 6 0.0013207
Machine 19 - Grinding 6 0.0013207
Machine 17 - Sinking 4 0.0008805
Machine 21 - Turning 4 0.0008805
Machine 22 - Milling 4 0.0008805
Machine 23 - Turning 3 0.0006604
Oven 3 0.0006604
Manual Milling - Machine 28 2 0.0004402
Quality Check 2 2 0.0004402
Machine 25 - Grinding 1 0.0002201
Machine 26 - Flat Grinding 1 0.0002201
  • Heatmap of activities:

using a heatmap we can check if certain activities are executed more on a specific day in the week:

week_activity <- eventlog %>% 
  group_by(Activity, dow) %>%
  summarise(Freq = n())
week_activity<-week_activity[complete.cases(week_activity),]

p <- ggplot(week_activity, aes(dow, Activity)) + geom_tile(aes(fill = log(Freq)), colour = "white") +
  labs(x="Weekday",y="Activity") +
  scale_fill_viridis()

png(file="heatmap.png",width=1500,height=750)
p
dev.off()
## png 
##   2
include_graphics("heatmap.png")

Dependency Matrix:

(threshold is set to 0.5, covering half of the activities in the log)

# dependency matrix with threshold
dependency_matrix(evLog, threshold = .5) %>% render_dependency_matrix()

Causal net:

# causal net with threshold
causal_net(evLog, threshold = .5) %>% render_causal_net()

Precedence Matrix:

Preceeding activities are found in the rows. The numbers are the number of times an activity in the top row is preceeded by an activity in the first column.

# Efficient precedence matrix
m <- precedence_matrix_absolute(evLog)
kable(as.matrix(m))
Change Version - Machine 22 Deburring - Manual End Final Inspection - Weighting Final Inspection Q.C. Fix - Machine 15 Fix - Machine 15M Fix - Machine 19 Fix - Machine 3 Fix EDM Flat Grinding - Machine 11 Flat Grinding - Machine 26 Grinding Rework Grinding Rework - Machine 12 Grinding Rework - Machine 2 Grinding Rework - Machine 27 Lapping - Machine 1 Laser Marking - Machine 7 Milling - Machine 10 Milling - Machine 14 Milling - Machine 16 Milling - Machine 8 Milling Q.C. Nitration Q.C. Packing Rework Milling - Machine 28 Round Q.C. Round Grinding - Machine 12 Round Grinding - Machine 19 Round Grinding - Machine 2 Round Grinding - Machine 23 Round Grinding - Machine 3 Round Grinding - Manual Round Grinding - Q.C. Setup - Machine 4 Setup - Machine 8 SETUP Turning & Milling - Machine 5 Start Stress Relief Turn & Mill. & Screw Assem - Machine 10 Turn & Mill. & Screw Assem - Machine 9 Turning - Machine 21 Turning - Machine 4 Turning - Machine 5 Turning - Machine 8 Turning - Machine 9 Turning & Milling - Machine 10 Turning & Milling - Machine 4 Turning & Milling - Machine 5 Turning & Milling - Machine 6 Turning & Milling - Machine 8 Turning & Milling - Machine 9 Turning & Milling Q.C. Turning Q.C. Turning Rework - Machine 21 Wire Cut - Machine 13 Wire Cut - Machine 18
Change Version - Machine 22 3 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Deburring - Manual 0 0 0 0 3 0 0 0 0 0 2 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
End 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Final Inspection - Weighting 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Final Inspection Q.C. 0 1 89 0 201 0 0 0 0 0 2 0 0 1 0 22 13 12 0 0 1 0 1 0 145 0 0 4 0 11 1 13 5 4 0 0 0 0 0 0 0 0 0 0 3 0 5 1 1 0 0 1 11 1 0 1 0
Fix - Machine 15 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Fix - Machine 15M 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
Fix - Machine 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Fix - Machine 3 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Fix EDM 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 0
Flat Grinding - Machine 11 0 0 0 0 10 0 0 0 0 0 31 0 0 0 0 0 36 13 0 0 0 0 0 1 3 0 0 1 0 1 0 3 2 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 9 0 0 0 0
Flat Grinding - Machine 26 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Grinding Rework 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
Grinding Rework - Machine 12 0 0 1 0 5 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
Grinding Rework - Machine 2 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Grinding Rework - Machine 27 0 0 1 0 14 0 0 0 0 0 0 0 0 1 2 30 4 3 0 0 0 0 0 0 12 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
Lapping - Machine 1 0 1 5 0 41 0 0 0 0 0 9 0 5 0 0 1 109 26 0 0 0 0 0 0 7 0 0 17 0 52 1 50 18 1 0 0 0 0 0 1 0 0 0 0 1 0 2 0 1 6 0 0 14 0 1 0 1
Laser Marking - Machine 7 0 2 13 0 25 0 0 0 0 0 35 0 2 1 1 1 86 31 0 0 0 0 0 0 11 0 0 2 0 4 1 7 0 2 0 0 0 0 0 2 0 0 0 0 0 0 3 2 2 0 0 0 15 2 1 1 0
Milling - Machine 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Milling - Machine 14 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
Milling - Machine 16 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 4 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0
Milling - Machine 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Milling Q.C. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Nitration Q.C. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Packing 0 0 74 1 123 1 0 0 1 0 1 0 0 1 0 5 7 4 0 1 1 0 0 0 36 0 1 1 0 0 0 2 3 2 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 2 0 0 4 3 0 0 0
Rework Milling - Machine 28 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
Round Q.C. 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Round Grinding - Machine 12 0 0 0 0 13 0 0 0 0 0 3 0 0 0 0 0 5 2 0 0 0 0 0 0 6 0 0 39 2 2 0 2 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0
Round Grinding - Machine 19 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Round Grinding - Machine 2 0 0 1 0 31 0 0 0 0 0 0 0 0 2 0 2 23 2 0 0 0 0 0 0 10 0 0 4 0 167 0 6 2 8 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 4 0 0 0 0
Round Grinding - Machine 23 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Round Grinding - Machine 3 0 1 3 0 35 0 0 0 0 0 2 0 0 2 0 0 20 4 0 0 0 0 0 0 6 0 1 4 0 7 0 171 1 9 0 0 0 0 0 0 0 0 0 0 1 0 3 0 0 0 0 0 3 0 0 0 0
Round Grinding - Manual 0 0 1 0 14 0 0 0 0 0 0 0 0 0 0 0 3 3 0 0 0 0 0 0 4 0 0 5 0 4 0 1 42 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 3 0 0 0 0
Round Grinding - Q.C. 0 1 4 0 7 0 0 0 0 0 0 1 0 0 0 0 6 4 0 0 0 0 0 0 4 0 0 0 0 2 0 6 0 18 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 4 0 0 0 0
Setup - Machine 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
Setup - Machine 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
SETUP Turning & Milling - Machine 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0
Start 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 2 7 2 1 0 2 1 0 0 8 2 0 1 0 0 0 1 5 4 0 1 3 0 0 2 1 1 1 1 11 4 11 27 26 35 28 15 19 1 0 0 0
Stress Relief 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 0 0 0 0 0 0 0 0 0 0
Turn & Mill. & Screw Assem - Machine 10 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0
Turn & Mill. & Screw Assem - Machine 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0
Turning - Machine 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
Turning - Machine 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 1 0 0 0 0 0 1 0 0 0
Turning - Machine 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0
Turning - Machine 8 0 1 1 0 3 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 4 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 54 0 1 0 0 0 2 0 0 13 0 0 0
Turning - Machine 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 0 0 0 0 1 0 1 7 0 0 0
Turning & Milling - Machine 10 0 0 2 0 5 0 0 0 0 0 1 0 1 0 0 1 4 3 0 0 1 0 0 0 3 0 0 0 0 5 0 2 0 1 0 0 0 0 1 0 0 0 0 0 0 0 87 0 0 1 0 1 30 0 0 0 0
Turning & Milling - Machine 4 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 171 13 0 0 0 64 0 0 0 0
Turning & Milling - Machine 5 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 174 2 0 0 51 5 0 0 0
Turning & Milling - Machine 6 0 0 2 0 1 0 0 0 0 0 1 0 0 0 0 0 6 5 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 2 171 0 1 68 1 0 0 0
Turning & Milling - Machine 8 0 0 1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 113 5 51 5 0 0 0
Turning & Milling - Machine 9 0 0 1 0 0 0 0 0 0 2 0 0 1 1 0 0 2 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 1 3 101 36 4 0 0 0
Turning & Milling Q.C. 0 1 18 0 9 0 1 0 0 1 20 0 0 1 0 1 20 104 0 0 0 0 0 3 6 0 0 2 0 7 0 7 2 2 0 0 0 0 1 3 1 0 0 0 2 2 24 40 33 40 27 29 111 0 1 3 0
Turning Q.C. 0 1 1 0 0 0 0 0 0 0 3 0 0 0 0 0 5 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 6 2 1 2 3 0 4 4 2 8 0 0 1
Turning Rework - Machine 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
Wire Cut - Machine 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 16 1
Wire Cut - Machine 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 3

Process maps:

(in below maps 90% of the activities are covered, this percentage can be set to avoid showing lesss frequent cases)

  • Relative
evLog <- evLog %>% filter_activity_frequency(percentage=0.5)

evLog %>%
  process_map(type = frequency("relative"), threshold=0.5)
  • Absolute
evLog %>%
  process_map(type = frequency("absolute"), threshold=0.5)
  • Relative - case
evLog %>%
  process_map(type = frequency("relative_case", color_scale = "Purples"), threshold=0.5)
  • Performance (median, days)
evLog %>%
  process_map(performance(median, "days"), threshold=0.5)
  • Performance (mean, hours)
evLog %>%
  process_map(performance(mean, "hours"), threshold=0.5)
  • Performance (edges) and relative frequency (nodes)
evLog %>%
  process_map(type_nodes = frequency("relative_case"),
              type_edges = performance(mean), threshold=0.5)
  • Trace Explorer

In below diagram the coverage was set to 50% of all cases

evLog2<-evLog

evLog2 %>%
  trace_explorer(coverage=0.5) -> traces
png(file="traces.png",width=1000)
traces
dev.off()
## png 
##   2
include_graphics("traces.png")

  • Filtering on trace frequency
evLog<-evLog %>%
  # filter_activity(c("LacticAcid", "CRP", "Leucocytes", "Return ER", "IV Liquid", "IV Antibiotics"), reverse = T) %>%
  filter_trace_frequency(percentage = 0.5)
  • Dotted Chart

The following chart only displays all cases fully contained in a 2 weeks period. It is possible to show cases starting in that one month period, all cases completed in that time interval, or all cases showing some activity iin an4 time interval.

evLog %>%  
 # filter_time_period(interval = ymd(c("20140107", "20140121")),filter_method = "contained") %>%
  dotted_chart

  • Animated Log

Using an animated log the cases in the log can be re-played on the process map. The example illustrates this can be very useful when looking for bottlenecks in the process. The process looks simpler in below model as we are only using 90%% of the log (based on relative occurrence in the log).

# animate log on process map
animate_process(evLog %>% filter_trace_frequency(percentage=0.50),
               mode = "relative",
               legend = "CaseId",
               mapping = token_aes(color = token_scale("amount",
                                                       scale = "linear",
                                                       range = c("yellow","red"))))

Stopping the timer:

# stop timer
toc()
## Time to complete: 11.78 sec elapsed

Credits:

citation("processmapR")
## 
## To cite package 'processmapR' in publications use:
## 
##   Gert Janssenswillen (2020). processmapR: Construct Process Maps Using
##   Event Data. R package version 0.3.4.
##   https://CRAN.R-project.org/package=processmapR
## 
## A BibTeX entry for LaTeX users is
## 
##   @Manual{,
##     title = {processmapR: Construct Process Maps Using Event Data},
##     author = {Gert Janssenswillen},
##     year = {2020},
##     note = {R package version 0.3.4},
##     url = {https://CRAN.R-project.org/package=processmapR},
##   }